home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / libexif / exif-content.h < prev    next >
Encoding:
C/C++ Source or Header  |  2007-06-13  |  2.5 KB  |  79 lines

  1. /* exif-content.h
  2.  *
  3.  * Copyright ⌐ 2001 Lutz Mⁿller <lutz@users.sourceforge.net>
  4.  *
  5.  * This library is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU Lesser General Public
  7.  * License as published by the Free Software Foundation; either
  8.  * version 2 of the License, or (at your option) any later version.
  9.  *
  10.  * This library is distributed in the hope that it will be useful, 
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  * Lesser General Public License for more details. 
  14.  *
  15.  * You should have received a copy of the GNU Lesser General Public
  16.  * License along with this library; if not, write to the
  17.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  18.  * Boston, MA 02111-1307, USA.
  19.  */
  20.  
  21. #ifndef __EXIF_CONTENT_H__
  22. #define __EXIF_CONTENT_H__
  23.  
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif /* __cplusplus */
  27.  
  28. typedef struct _ExifContent        ExifContent;
  29. typedef struct _ExifContentPrivate ExifContentPrivate;
  30.  
  31. #include <libexif/exif-tag.h>
  32. #include <libexif/exif-entry.h>
  33. #include <libexif/exif-data.h>
  34. #include <libexif/exif-log.h>
  35. #include <libexif/exif-mem.h>
  36.  
  37. struct _ExifContent
  38. {
  39.         ExifEntry **entries;
  40.         unsigned int count;
  41.  
  42.     /* Data containing this content */
  43.     ExifData *parent;
  44.  
  45.     ExifContentPrivate *priv;
  46. };
  47.  
  48. /* Lifecycle */
  49. ExifContent *exif_content_new     (void);
  50. ExifContent *exif_content_new_mem (ExifMem *);
  51. void         exif_content_ref     (ExifContent *content);
  52. void         exif_content_unref   (ExifContent *content);
  53. void         exif_content_free    (ExifContent *content);
  54.  
  55. void         exif_content_add_entry    (ExifContent *, ExifEntry *);
  56. void         exif_content_remove_entry (ExifContent *, ExifEntry *);
  57. ExifEntry   *exif_content_get_entry    (ExifContent *, ExifTag);
  58. void         exif_content_fix          (ExifContent *);
  59.  
  60. typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data);
  61. void         exif_content_foreach_entry (ExifContent *content,
  62.                      ExifContentForeachEntryFunc func,
  63.                      void *user_data);
  64.  
  65. /* For your convenience */
  66. ExifIfd exif_content_get_ifd (ExifContent *);
  67. #define exif_content_get_value(c,t,v,m)                    \
  68.     (exif_content_get_entry (c,t) ?                    \
  69.      exif_entry_get_value (exif_content_get_entry (c,t),v,m) : NULL)
  70.  
  71. void exif_content_dump  (ExifContent *content, unsigned int indent);
  72. void exif_content_log   (ExifContent *content, ExifLog *log);
  73.  
  74. #ifdef __cplusplus
  75. }
  76. #endif /* __cplusplus */
  77.  
  78. #endif /* __EXIF_CONTENT_H__ */
  79.